/*
 * Copyright (c) 2013.
 * 游戏服务器核心代码编写人陈磊拥有使用权
 * 联系方式：E-mail:13638363871@163.com ;qq:502959937
 * 个人博客主页：http://my.oschina.net/chenleijava
 */

package com.dc.gameserver.extComponents.springDataRedisCache;

import com.dc.gameserver.extComponents.springDataRedisCache.Operations.ObjectOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.io.Serializable;

/**
 * @author 石头哥哥
 *         Date: 13-11-9</br>
 *         Time: 下午4:33</br>
 *         Package: Server.ExtComponents.RedisManager</br>
 *         注解：基于spring-redis+ redis的缓存封装
                    应用场景：分布式环境
 */
@Service
public class RedisServiceObject implements ObjectOperations {

    @Resource
    private RedisTemplate<Integer, Serializable> redisTemplate;

    @Resource
    private StringRedisTemplate stringRedisTemplate;

    /**
     * @param key
     * @param serializable 其中 list中的数据应该实现序列化接口
     */
    @Override
    public void set(int key, Serializable serializable) {
        redisTemplate.opsForValue().set(key, serializable);
    }

    /**
     * @return
     */
    @Override
    public Serializable get(int key) {
        return redisTemplate.opsForValue().get(key);
    }

    /**
     * 删除 缓存 key对应的value
     *
     * @param key
     */
    @Override
    public void del(int key) {
        redisTemplate.delete(key);
    }

    /**
     * @param key
     * @param value 其中 list中的数据应该实现序列化接口
     */
    @Override
    public void set(String key, String value) {
          stringRedisTemplate.opsForValue().set(key,value);
    }

    /**
     * @return
     */
    @Override
    public String get(String key) {
        return stringRedisTemplate.opsForValue().get(key);
    }

    /**
     * 删除 缓存 key对应的value
     *
     * @param key
     */
    @Override
    public void del(String key) {
        stringRedisTemplate.opsForValue().getOperations().delete(key);
    }

}
